package com.java.yz.day13.ketang;
import java.io.*;

/*
    把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中
        数据源: a.txt ---输入流
                        ---字节输入流
                        --- InputStream
                               --- FileInputStream
                                   1、一次读取一个字节
                                   2、一次读取一个字节数组
                               --- BufferedInputStream
                                   1、一次读取一个字节
                                   2、一次读取一个字节数组
        目的地: b.txt ---输出流
                        ---字节输出流
                        --- OutputStream
                               --- FileOutputStream
                                    1、一次写入一个字节
                                    2、一次写入一个字节数组
                               --- BufferedOutputStream
                                   1、一次写入一个字节
                                   2、一次写入一个字节数组

 */
public class CopyFileDemo1 {
    public static void main(String[] args) {
        FileOutputStream fos = null;
        FileInputStream fis = null;
        try {
            fos = new FileOutputStream("src/com/java/yz/day13/ketang/b.txt"); //写出
            fis = new FileInputStream("src/com/java/yz/day13/ketang/a.txt"); //读入
            //当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中
            //先把a中的内容读出来在写入到b中
            byte[] b1 = new byte[1024];
            int i = 0;
            while ((i = fis.read(b1)) != -1) {
                String s = new String(b1, 0, i);
                fos.write(s.getBytes());
                //System.out.println(s);

                }
            }catch(FileNotFoundException e){
                throw new RuntimeException(e);
            } catch(IOException e){
                throw new RuntimeException(e);
            }

            finally{
                if (fos != null) {
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (fis != null) {
                    try {
                        fis.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
    }
}
